﻿
jQuery.noConflict();
jQuery(function ($) {
    $("#NewsCate0").sortable({
        connectWith: ".control"
                , cursor: 'pointer',
        beforeStop: function (event, ui) {
            alert(this.id + " , " + ui.item.index() + " , " + ui.position.left + " , " + $(this).attr("id"));

        }
                , stop: function (event, ui) {

                } //khi chuyển 1 thành phần con này sang thành phần cha khác sự kiện này sẽ được kích hoạt
        //Sự kiện này được kích hoạt khi một kết nối sắp xếp danh sách đã nhận được một mục từ danh sách khác.
                , receive: function (event, ui) {

                }

    }).disableSelection();
});
jQuery(function ($) {
    $("#pnlContent").sortable({
        connectWith: ".control"
                , cursor: 'pointer',
        beforeStop: function (event, ui) {
            ReoderControl(event, ui, this);
        }
                , stop: function (event, ui) {

                } //khi chuyển 1 thành phần con này sang thành phần cha khác sự kiện này sẽ được kích hoạt
        //Sự kiện này được kích hoạt khi một kết nối sắp xếp danh sách đã nhận được một mục từ danh sách khác.
                , receive: function (event, ui) {

                }

    }).disableSelection();
});
jQuery(function ($) {
    $("#pnlHeader").sortable({
        connectWith: ".control"
                , cursor: 'pointer',
        beforeStop: function (event, ui) {
            ReoderControl(event, ui, this);

        }
                , stop: function (event, ui) {

                } //khi chuyển 1 thành phần con này sang thành phần cha khác sự kiện này sẽ được kích hoạt
        //Sự kiện này được kích hoạt khi một kết nối sắp xếp danh sách đã nhận được một mục từ danh sách khác.
                , receive: function (event, ui) {

                }

    }).disableSelection();
});
jQuery(function ($) {
    $("#pnlFooter").sortable({
        connectWith: ".control"
                , cursor: 'pointer',
        beforeStop: function (event, ui) {
            ReoderControl(event, ui, this);
        }
                , stop: function (event, ui) {

                } //khi chuyển 1 thành phần con này sang thành phần cha khác sự kiện này sẽ được kích hoạt
        //Sự kiện này được kích hoạt khi một kết nối sắp xếp danh sách đã nhận được một mục từ danh sách khác.
                , receive: function (event, ui) {

                }

    }).disableSelection();
});


jQuery(function ($) {
    $("#pnlLeft,#pnlRight").sortable({
        connectWith: ".panels"
                , cursor: 'pointer',
        beforeStop: function (event, ui) {
            ReoderControl(event, ui, this);
        }
                , stop: function (event, ui) {

                } //khi chuyển 1 thành phần con này sang thành phần cha khác sự kiện này sẽ được kích hoạt
        //Sự kiện này được kích hoạt khi một kết nối sắp xếp danh sách đã nhận được một mục từ danh sách khác.
                , receive: function (event, ui) {

                }

    }).disableSelection();
});
function Edit(_controlCode, _parentNew, _parentOld, _order) {
    jQuery.ajax({
        type: "POST",
        url: "QuickOption.aspx/ReorderControl", //Can change to use GetDate and it works.
        data: "{ 'controlCode': '" + _controlCode + "','parentNew':'" + _parentNew + "','parentOld':'" + _parentOld + "','order':'" + _order + "'}", //thinking the problem is here
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        error: function () {
        }
    });

}
function ReoderControl(event, ui, $this) {
    var arr = [];
    var controlCode = ui.item.attr("id");
    var order;
    var parentNew = ui.item.context.parentElement.id;
    var parentOld = $this.id;
    //alert(ui.item.attr("id") + " , Mới :" + ui.item.context.parentElement.id + " , " + ui.item.index() + " , " + " , Cũ: " + this.id);
    if (parentNew == parentOld) {
        var arr = [];
        for (var i = 0; i < $this.children.length; i++) {
            var allclass = jQuery($this.children[i]).attr("class");
            if (allclass != null) {
                var cl = allclass.split(' ');
                for (var j = 0; j < cl.length; j++) {
                    if (cl[j] == 'control') {
                        if ($this.children[i].id != "") {
                            jQuery.makeArray($this.children[i].id, arr);
                            break;
                        }

                    }
                }
            }
        }
        if (arr.length > 0) {
            for (var i = 0; i < arr.length; i++) {
                if (arr[i] == controlCode) {
                    order = i;
                    break;
                }
            }
        }
    }
    else {
        //Control trong cái chứa mới
        for (var i = 0; i < ui.item.context.parentElement.children.length; i++) {
            var allclass = jQuery(ui.item.context.parentElement.children[i]).attr("class");
            if (allclass != null) {
                var cl = allclass.split(' ');
                for (var j = 0; j < cl.length; j++) {
                    if (cl[j] == "control") {
                        if (ui.item.context.parentElement.children[i].id == "") {
                            jQuery.makeArray(ui.item.context.parentElement.children[i].id, arr);
                            break;
                        }
                    }
                }
            }
        }
        if (arr.length > 0) {
            for (var i = 0; i < arr.length; i++) {
                if (arr[i] == controlCode) {
                    order = i;
                    break;
                }
            }
        }
    }
    Edit(controlCode, parentNew, parentOld, order);
}
jQuery(document).ready(function ($) {
    var controlPanel;
    var $this;
    var $thisId = null;
    //parent control
    var $parentId = null;
    var link = jQuery("link");
    var arrSrcCSS;
    jQuery(window).scroll(function () {
        jQuery(".loadboxcss").css("top", jQuery(window).scrollTop() + 50)
    });
    jQuery(".control").hover(function ($) {
        controlPanel = jQuery(".controlPanel");
        $this = jQuery(this);
        $parent = this.parentElement;
        $thisId = this.id;
        controlPanel.css({ "display": "block" });
        $this.append(controlPanel);
    }, function ($) {
        controlPanel.css("display", "none");
        $this.css("border", "0");
        $this.remove(controlPanel);
    });
    var location = null;
    jQuery("#panelEdit").click(function () {
        var name = $thisId + ".css";
        var loc = null;
        jQuery.get("Styles/" + name, function (data) {
            jQuery("#txtViewCSS").text(data);
            jQuery(".loadCSS").slideDown(500);
            jQuery(".popup").show();
            saveLocationStyle(name);
        });
        return false;
    });
    jQuery(".pp_close").click(function () {
        jQuery(".popup").hide();
        jQuery(".loadCSS").slideUp(500);
        return false;
    });
    jQuery("#panelDelete").click(function () {
        //this = $parent;
        var arr = [];
        for (var i = 0; i < $parent.children.length; i++) {
            var allclass = jQuery($parent.children[i]).attr("class");
            if (allclass != null) {
                var cl = allclass.split(' ');
                for (var j = 0; j < cl.length; j++) {
                    if (cl[j] == 'control') {
                        jQuery.makeArray($parent.children[i].id, arr);
                        break;
                    }
                }
            }
        }        
        removeControl($thisId, $parent.id, arr.length);
        return false;
    });

});
function saveLocationStyle(_location) {
    jQuery.ajax({
        type: "POST",
        url: "QuickOption.aspx/saveStyle", //Can change to use GetDate and it works.
        data: "{ 'location': '" + _location + "'}", //thinking the problem is here
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        error: function () {
            alert("Lỗi ");
        }
    });
}
function removeControl(_controlCode, _parentId, _length) {
    jQuery.ajax({
        type: "POST",
        url: "QuickOption.aspx/RemoveControlOnPage", //Can change to use GetDate and it works.
        data: "{ 'controlCode': '" + _controlCode + "','parentOld':'" + _parentId + "','length':'" + _length + "'}", //thinking the problem is here
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function () {
            if (confirm("Bạn có chắc chắn muốn xóa không ?")) {
                jQuery("body").append(jQuery(".controlPanel"));
                jQuery("#" + _controlCode).removeClass('control');
                jQuery("#" + _controlCode).html("");
            }
        },
        error: function () {
            alert("Lỗi ");
        }
    });
}
